A communication system, particularly a wireless access network, contains various components and units to provide voice and data services over the air interface. As shown in FIG. 1, the wireless access network typically includes an access terminal 130, a communication transmission device such as a Base Station Transmission System (“BTS”) 120, and a communication system control device such as a Base Station Controller (“BSC”) 110. The BSC 110 receives data from the core network 100 and passes the data to the BTS 120 so that the BTS 120 can transmit the data to an access terminal (“AT”) 130 over a wireless link 125. Data is communicated in the reverse direction as well and passed from the AT 130 to the core network 100. The connection between the BTS 120 and BSC 110 is usually considered as the backhaul portion of the network and is typically through a T1 facility 115.
Data frames transmitted from the BSC 110 to the BTS 120 are buffered at the BTS 120 before they are scheduled for transmission over the air interface. Usually the BTS 120 has a much more limited buffer size as compared to the buffers at the BSC 110. In addition, the air interface capacity and bandwidth for transmission is limited.
Because data frames at the BTS 120 are transmitted at a variable rate that most of the time is lower than the rate at the backhaul and because the packet arrival at the BSC 110 can be very high, the forward transmission path, from the BSC 110 to the BTS 120 and transmission to the air interface, presents a “funnel effect.” If the flow from the BSC 110 to the BTS 120 is not controlled, the data frames may overflow the buffers (e.g., buffer 122) at the BTS 120 and cause large packet loss. Packet loss increases the probability of retransmission and thus decreases the system efficiency and quality of service. Therefore, flow control between the BSC 110 and BTS 120 attempts to minimize the buffer overflow probability and thus minimize packet loss and retransmissions. On the other hand, if the flow from the BSC 110 to BTS 120 is regulated too tightly, it may cause buffer underflow at the BTS 120 and thus waste the air interface capacity. Flow control between the BSC 110 and BTS 120 should be carefully managed to minimize both buffer overflow and buffer underflow so that the system resource can be fully utilized and system efficiency can be maintained.
Flow control refers to a mechanism or process that enables a data source to match its transmission rate to the currently available service rate at a receiver in a network. Flow control can also be considered a congestion control technique. Thus, flow control attempts to regulate the rate of data flow while not causing either an overflow or underflow in a network communication device.
One possible method of implementing flow control is to let the BTS 120 instruct the BSC 110 to send an amount of data that can be accommodated at the BTS 120. Specifically, the BTS 120 informs the BSC 110 by sending a flow control indication message indicating the amount of data that can be accommodated at the BTS 120. This receiver-driven flow control mechanism insures that buffer overflow will not occur. However, this method of flow control does not provide a mechanism to avoid buffer underflow at the BTS 120.
It will also be appreciated that the more flow control indication messages sent to the BSC 110, the more up-to-date information the BSC 110 will have for determining an amount of data to send to the BTS 120. However, flow control indication messages occupy bandwidth on the backhaul facility between the BSC 110 and BTS 120 and cause delay to other traffic transmitted on the backhaul. In addition, flow control messages consume processing power at both the BSC 110 and the BTS 120. Thus, the overhead created by sending flow control messages should be kept minimum.